<?php
/**
 * Crea un array de rutas con su path para smarty
 * 
 * @param array $array Array de rutas relativas al htdocs
 * @return array
 */
function smarty_crear_rutas($array) {
  $rutas = array();
  //agregamos las rutas de templates generales y las del frame
  $rutas[] = realpath(sesion::get("path")."../frame/templates");
  $rutas[] = realpath(sesion::get("path")."../templates/templates");
  if (!empty ($array)) {
    foreach ($array as $i => $ruta) {
      $aux = realpath(sesion::get("path")."../".$ruta);
      if ($aux == false ) {
        throw new Exception("Ruta del template invalida");
      }
      $rutas[] = $aux;
    }
  }
  return $rutas;
}

/**
 * Evalua si un email  es valido o no
 *
 * @param String $email email a evaluar
 * @return Boolean
 */
function is_email($email) {
  return (bool)preg_match("^([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+).([a-zA-Z0-9]{2,4})?(\.[a-zA-Z]{2,4})^", $email);
}

/**
 *  Carga defines segun config.ini
 */
function load_defines() {
  $defines = configManager::obtener("defines");
  foreach ($defines as $define => $valor) {
    if (is_array($valor)) { // es una ruta
      foreach ($valor as $indice => $ruta) {
        define($indice,realpath("../frame/".$ruta));
        constantes::set($indice, realpath("../frame/".$ruta));
      }
    } else {
      define($define,$valor);
      constantes::set($define,$valor);
    }
  }
}


function send_by_post($url,$datos) {
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, "datos=$datos"); 
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_exec($ch);
  curl_close($ch);
}

/**
 * Wrapper de print_r
 * @param mixed $data
 */
function pr($data) {
  $tpl = new template("pr.tpl");
  $backTrace = debug_backtrace(false);
  ob_start();
  print_r($data);
  $data = ob_get_contents();
  ob_end_clean();
  $tpl->asignar("FILE", $backTrace[0]["file"]);
  $tpl->asignar("LINE", $backTrace[0]["line"]);
  $tpl->asignar("DUMP", $data);
  $tpl->mostrar(false);
}

function encode_password($password) {
  $password = trim($password);
  if (empty($password)) {
    return false;
  }
  $key = configManager::obtener("keys", "password");
  return md5($password.$key);

}
?>